1. Field of the Invention
The present invention relates to integrated circuit design and, more particularly, to techniques for providing sufficient ground return for signal traces in layers of an integrated circuit.
2. Related Art
Integrated circuits (ICs) are becoming increasingly large and complex, typically including millions of individual circuit elements such as transistors and logic gates. As a result of this increased size and complexity, IC designers are increasingly using electronic design automation (EDA) software tools to assist with IC design. Such tools help to manage the complexity of the design task in a variety of ways, such as by allowing ICs to be designed hierarchically, thereby enabling the design to be divided into modules and enabling the design task to be divided among multiple designers in a manner that limits the complexity faced by any one designer.
Various hardware description languages (HDLs) have been developed which allow circuit designs to be described at various levels of abstraction. A description of a circuit according to an HDL (referred to herein as an xe2x80x9cHDL modelxe2x80x9d of the circuit) may, for example, describe a particular circuit design in terms of the layout of its transistors and interconnects on an IC, or in terms of the logic gates in a digital system. Descriptions of a circuit at different levels of abstraction may be used for different purposes at various stages in the design process. HDL models may be used for testing circuits and circuit designs, as well as for fabricating the circuits themselves. The two most widely-used HDLs are Verilog and VHDL (Very High Speed Integrated Circuits (VHSIC) Hardware Description Language), both of which have been adopted as standards by the Institute of Electrical and Electronics Engineers (IEEE). VHDL became IEEE Standard 1076 in 1987 and Verilog became IEEE Standard 1364 in 1995.
EDA tools are typically capable of converting a functional HDL description of a circuit design into a specific circuit implementation. The specific circuit implementation may be represented by a xe2x80x9cnetlist,xe2x80x9d which identifies both the elements of the circuit and the interconnections among them. In general, a netlist describes the circuit design in terms of nodes and edges. Each node represents a circuit element and each edge represents an interconnection between two circuit elements. Netlists may describe circuits at various levels of abstraction. A netlist may, for example, describe circuit elements in terms of specific structural components (such as resistors and transistors) or in terms of high-level xe2x80x9ccellsxe2x80x9d that may be decomposed into specific structural components and/or other cells. A netlist may, for example, describe the connections between cells in terms of specific cell-to-cell pin connections.
EDA tools are typically capable of converting a netlist into a physical layout of the circuit. The layout process involves both xe2x80x9cplacementxe2x80x9d (assigning specific coordinates in the circuit layout to each cell) and xe2x80x9croutingxe2x80x9d (wiring or connecting cells together). The layout produced thereby defines the specific dimensions and coordinates of the gates, interconnects, contacts, and other elements of the circuit. The layout may have multiple layers, corresponding to the layers of the circuit. The layout may be used to form a mask, which in turn may be provided to a foundry to fabricate the integrated circuit itself.
One stage in the process of IC design is package design, which refers to the design of substrates (packages) for interconnecting layers of the IC. An IC typically includes multiple packages interconnected in layers. Each package, in turn, may include multiple layers (also referred to as xe2x80x9cplanesxe2x80x9d). Packages within a single IC may be composed of varying materials having varying electrical properties. Individual signal nets (also referred to herein simply as xe2x80x9cnetsxe2x80x9d) in the IC may be distributed across multiple packages. A package design must ensure that signals in the IC have sufficient power and maintain sufficient signal integrity when passing from one layer of the IC to another. As used herein, the term xe2x80x9csignal netxe2x80x9d (or simply xe2x80x9cnetxe2x80x9d) refers to a collection of conductors that are connected to form a complete circuit connecting at least one output to at least one input.
As with IC design more generally, various tools exist for automating aspects of IC package design. Such tools typically provide a graphical user interface through which package designers may visually design the IC package in three dimensions. For example, referring to FIG. 1, a prior art package. design system 100 is shown in which a human package designer 116 creates and modifies a model 102 of an integrated circuit package using a package design tool 104. The package designer 116 may, for example, use a keyboard 114 or other input device to provide input 108 to the package design tool 104, in response to which the package design tool 104 may modify the package model 102 and display a graphical representation 106 of the package model 102 (or of particular layers therein) on a display monitor 112. The graphical representation 106 typically displays signal traces as lines on a two-dimensional grid.
The package model 102 may include, for example, information specifying the name, location, and size of each signal trace, ground metal, via, and other elements of the package model 102. The package model 102 is typically stored in a database file in a computer system.
One example of the package design tool 104 is Advanced Package Designer (APD), available from Cadence Design Systems, Inc. of San Jose, Calif. APD is a software program which allows the package designer 116 to model the physical, electrical, and thermal characteristics of the package substrate. An APD package design database (e.g., the package model 102) may be provided to a foundry to be used directly as manufacturing input for fabrication of the designed package.
It is common for package designs to include distinct signal layers and ground layers. For example, package model 102 includes layers 104a-c, including ground layer 104a, signal layer 104b, and ground layer 104c. Although package models typically contain additional layers, only the three layers 104a-c are shown in FIG. 1 for ease of illustration. A signal layer (such as layer 104b) typically includes only signal traces (also referred to as signal lines), while a ground layer (such as layers 104a and 104c) typically includes only ground metal, typically arranged either in a grid or in a solid plane. Signal layers and ground layers are often arranged so that each signal layer is located between two ground layers. It is important that there be ground metal directly above or below each signal trace in a signal layer to ensure an adequate ground return path for each signal trace.
Lack of ground metal above or below a signal trace may result from a variety of causes. For example, if the ground planes above and below a signal plane include ground lines arranged in a grid, a particular signal trace in the signal plane may be routed between the ground lines above and below it, resulting in lack of sufficient ground return. Even if the ground planes include a solid plane of ground metal, there may be gaps in the ground metal plane. For example, a via (an inter-layer connector) that penetrates the ground plane causes a gap in the ground metal at and in the vicinity of the via. A signal trace that is routed directly above or below this gap may lack sufficient ground return.
Current package design tools do not automatically verify that there is ground metal above or below all signal traces in a package design. As a result, the human package designer 116 must typically manually verify the proximity of ground metal to signal traces. This is a tedious, time-consuming, and error-prone process.
To verify that there is ground metal above or below each signal trace, the package designer 116 may visually inspect the graphical representation 106 to determine whether ground metal is sufficiently close to each signal trace. Signal and ground layers may, for example, be superimposed on each other in the graphical package representation. Verifying the proximity of signal traces to ground metal by visually inspecting the graphical package representation 106 may be difficult due to the large number of signal traces and ground metal wires, as well as to the superimposition of layers on each other, which may obscure features of one layer under the features of the other layer.
Additionally or alternatively, the package design tool 104 may generate textual package property reports 110 which list various properties of the package model 102, such as the locations and lengths of signal traces and ground metal in the package model 102. The package designer 116 may attempt to verify the proximity of signal traces to ground metal by inspecting the reports 110. Both of these methods are tedious, time-consuming, and difficult to perform accurately.
What is needed, therefore, are improved techniques for verifying that ground metal is sufficiently proximate to signal traces in an integrated circuit design.
Techniques are disclosed for verifying the proximity of signal return paths (e.g., ground metal or power) to signal traces in an integrated circuit package design. A package designer creates the package design using a package design tool. A proximity verifier verifies that there is a signal return path within a predetermined threshold distance of each specified signal trace in the package layers directly above and/or below the signal trace. The proximity verifier may notify the package designer of any signal traces which are not sufficiently close to signal return paths, such as by providing visual indications of such signal traces in a graphical representation of the package design displayed on a display monitor. In response, the package designer may modify the package model to ensure that all signal traces are sufficiently close to signal return paths. The proximity verifier may be implemented as a design rule which may be executed automatically and in real-time by the package design tool.
Other features and advantages of various aspects and embodiments of the present invention will become apparent from the following description and from the claims.